前兩篇我們先了解了 MCP 是什麼,以及它跟 API、Function Calling 有什麼不同。那麼這篇就來把 MCP 裡面最重要的三個角色搞懂:
Host、Client、Server。
MCP 的基本架構可以簡單想成:
User
↓
Host
↓
MCP Client
↓
MCP Server
↓
Tool / Resource
看起來很多名詞,但其實沒有想像中複雜。
Host 可以理解成,使用者直接操作的 AI Application,支援 MCP 的 AI 應用程式,就可以扮演 Host 的角色。
Host 裡面通常會包含:
所以可以先把它想成:
Host
├── LLM
└── MCP Client
LLM 負責理解我們的問題,而 MCP Client 則負責跟 MCP Server 溝通。
MCP Client 可以想成:
負責幫 Host 跟 MCP Server 溝通的橋樑。
例如我們問 AI:
「幫我計算 123 × 456」
LLM 判斷這個問題可以使用 Calculator Tool,這時候不是 LLM 自己跑去呼叫 Server,而是由 MCP Client 負責把請求送出去。
所以:
LLM
↓
MCP Client
↓
MCP Server
這就是 Client 最重要的工作。
MCP Server 則是:
負責提供能力給 AI 使用。
例如我們有一個 Calculator Server:
Calculator MCP Server
└── calculate
也可以有:
File System MCP Server
├── read_file
└── list_directory
或是:
SQLite MCP Server
└── query
所以 MCP Server 不一定是某一種服務,你可以把它想成:
把某個能力包裝起來,透過 MCP 提供給 AI。
現在就可以理解整個流程了,假設我們有:
Host
│
└── MCP Client
│
▼
Calculator Server
│
▼
calculate()
當使用者問:
「123 × 456 是多少?」
流程大概會是:
使用者
↓
Host
↓
LLM 判斷要使用 Calculator
↓
MCP Client
↓
Calculator MCP Server
↓
calculate()
↓
回傳結果
↓
LLM
↓
回答使用者
所以其實可以用一句話記住:
Host 負責整個 AI Application,Client 負責溝通,Server 負責提供能力。
如果每個 AI Application 都要自己處理 Calculator、File System、Git、SQLite……
最後可能會變成:
AI Application
├── Calculator 整合
├── Git 整合
├── SQLite 整合
├── File System 整合
└── ...
而 MCP 想做的事情,就是讓這些外部能力可以透過一套共同的方式被 AI Application 使用。
Host
│
MCP Client
│
┌───────┼───────┐
↓ ↓ ↓
Calculator Git SQLite
Server Server Server
這也是為什麼 MCP 的架構會特別強調 Client ↔ Server。
今天其實只要記住三個東西:
Host → AI Application
MCP Client → 負責跟 Server 溝通
MCP Server → 提供 Tools、Resources 等能力
把它串起來就是:
Host
↓
MCP Client
↓
MCP Server
↓
外部能力
下一篇我們就會先把 MCP 開發環境裝起來。